package com.zds.scm.dao;

import java.util.List;

import com.zds.scm.common.dao.CommonDAO;
import com.zds.scm.domain.ClassInfo;

public interface ClassInfoDAO extends CommonDAO<ClassInfo> {
	/**
	 * 分页查询所有课程信息
	 * @param currentPage
	 * @param pageSize
	 * @return 
	 */
	public List<ClassInfo> findAll(int currentPage, int pageSize);
	/**
	 * 所有班级总数,对应findAll
	 * @return  所有班级总数
	 */
	public int getTotalRows();
	/**
	 * 根据系别查询该系别下的班级
	 * 
	 * @param DeptCode
	 * @return 该系下的班级列表
	 */
	public List<ClassInfo> findByDeptCode(String DeptCode,int currentPage, int pageSize);
	/**
	 * 指定系部下的班级数量
	 * @param DeptCode
	 * @return 该系下的班级总量
	 */
	public int getTotalRowsDeptCode(String DeptCode);
	/**
	 * 根据班级名字模糊查询,对应findByDeptCode
	 * @param className
	 * @return 班级列表
	 */
	public List<ClassInfo> findByName(String likeClassName,int currentPage, int pageSize);
	/**
	 * 名字模糊查询出的班级数量 对应findByName
	 * @param likeClassName
	 * @return 班级数量
	 */
	public int getTotalRowsByName(String likeClassName);
	/**
	 * 根据班级代码模糊查询
	 * @param className
	 * @return 班级列表
	 */
	public List<ClassInfo> findByCode(String likeClassCode,int currentPage, int pageSize);
	/**
	 * 班级代码模糊查询出来的班级数量，对应findByCode
	 * @param likeClassCode
	 * @return 班级数量
	 */
	public int getTotalRowsByCode(String likeClassCode);
	/**
	 * 班级代码/名称、所属系部模糊查询出来的班级列表，对应findByCode
	 * @param likeClassCode
	 * @return 班级数量
	 */
	public List<ClassInfo> findByNameAndCode(String likeClassCode,String likeClassName,String likeDeptCode,int currentPage, int pageSize);
	/**
	 * 班级代码/名称、所属系部模糊查询出来的班级数量，对应findByCode
	 * @param likeClassCode
	 * @return 班级数量
	 */
	public int getTotalRowsByNameAndCode(String likeClassCode,String likeClassName,String likeDeptCode);
}
